// encoding-utils.js - 编码工具模块
// 处理 Windows 系统下的中文编码问题

/**
 * 设置控制台编码为UTF-8以支持中文显示
 * 兼容不同的 Node.js 版本和环境
 */
function setupConsoleEncoding() {
  if (process.platform === 'win32') {
    try {
      // 设置环境变量
      process.env.CHCP = '65001';
      
      // 尝试设置输出编码（如果支持的话）
      if (process.stdout && typeof process.stdout.setEncoding === 'function') {
        process.stdout.setEncoding('utf8');
      }
      if (process.stderr && typeof process.stderr.setEncoding === 'function') {
        process.stderr.setEncoding('utf8');
      }
      
      console.log('编码设置完成: UTF-8');
    } catch (error) {
      console.warn('编码设置失败，但不影响运行:', error.message);
    }
  }
}

/**
 * 执行系统命令设置控制台代码页
 */
function setConsoleCodePage() {
  if (process.platform === 'win32') {
    try {
      const { exec } = require('child_process');
      exec('chcp 65001', { windowsHide: true }, (error) => {
        if (error) {
          console.warn('无法通过命令设置代码页:', error.message);
        }
      });
    } catch (error) {
      console.warn('设置代码页失败:', error.message);
    }
  }
}

module.exports = {
  setupConsoleEncoding,
  setConsoleCodePage
};
